package com.ocean.web.task;

import com.ocean.system.service.IOFileMetadataService;
import com.ocean.system.service.ISysConfigService;
import com.ocean.web.util.CpjypgGRAPES;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import static com.ocean.web.util.CpjypgZFXCP.*;


/**
 * 产品评估检验处理在分析产品数据的任务
 */
@Component("ZFXCPCppgjyTask")
@Slf4j
public class ZFXCPCppgjyTask {
    @Autowired
    private ISysConfigService configService;
    @Autowired
    private IOFileMetadataService ioFileMetadataService;
    /*GRAPES全球海温*/
    public void processFiles() throws Exception {
        String folderPath = configService.selectConfigByKey("zfxcp");
        String outPath = "E:\\";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        String today = sdf.format(new Date()); // 假设目标日期为当天，若固定为20250908可直接赋值

        File folder = new File(folderPath);
        if (!folder.exists() || !folder.isDirectory()) {
            System.out.println("错误：文件夹不存在 -> " + folderPath);
            return;
        }

        // 定义目标文件
        File sstFile = new File(folder, "ERA_SST_" + today + ".nc");
        File swhFile = new File(folder, "ERA_SWH_" + today + ".nc");
        File u10File = new File(folder, "ERA_U10_" + today + ".nc");
        File v10File = new File(folder, "ERA_V10_" + today + ".nc");

        // 1. 处理ERA_SST_20250908.nc（若存在）
        if (sstFile.exists() && sstFile.isFile()) {
            Map<String, String> sstFiles = new HashMap<String, String>() {{
                put("E:\\项目资料备份\\新云平台文件\\2025工作\\再分析产品\\sst\\ERA_SST_20250908.nc", "sst");
            }};
            String sstOutput = "E:\\sst_cropped.nc";
            processSst(sstFiles, sstOutput);
            System.out.println("处理SST文件：" + sstFile.getName());
        }

        // 2. 处理ERA_SWH_20250908.nc（若存在）
        if (swhFile.exists() && swhFile.isFile()) {
            Map<String, String> swhFiles = new HashMap<String, String>() {{
                put("E:\\项目资料备份\\新云平台文件\\2025工作\\再分析产品\\wave\\ERA_SWH_20250908.nc", "swh");
            }};
            String swhOutput = "E:\\swh_cropped.nc";
            processSwh(swhFiles, swhOutput);
            System.out.println("处理SWH文件：" + swhFile.getName());
        }

        // 3. 处理U10和V10（需两者都存在）
        if (u10File.exists() && u10File.isFile() && v10File.exists() && v10File.isFile()) {
            Map<String, String> windFiles = new HashMap<String, String>() {{
                put("E:\\项目资料备份\\新云平台文件\\2025工作\\再分析产品\\wind\\ERA_U10_20250908.nc", "u10");
                put("E:\\项目资料备份\\新云平台文件\\2025工作\\再分析产品\\wind\\ERA_V10_20250908.nc", "v10");
            }};
            String windOutput = "E:\\wind_calculated.nc";
            // 执行对应处理方法（示例）
            processWind(windFiles, windOutput);
            System.out.println("处理U10和V10文件");
        } else {
            if (!u10File.exists()) System.out.println("缺少U10文件");
            if (!v10File.exists()) System.out.println("缺少V10文件");
        }
    }



   /* public static void main(String[] args) {
        GRAPESqqhw();
    }*/
}
